package com.reactim.message.routing;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 消息确认数据模型
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MessageAcknowledgment {
    
    /**
     * 原始消息ID
     */
    private String messageId;
    
    /**
     * 确认实例ID
     */
    private String instanceId;
    
    /**
     * 确认状态
     */
    private AckStatus status;
    
    /**
     * 确认时间戳
     */
    private Long timestamp;
    
    /**
     * 错误信息（如果处理失败）
     */
    private String errorMessage;
    
    /**
     * 确认状态枚举
     */
    public enum AckStatus {
        SUCCESS,    // 成功处理
        FAILED,     // 处理失败
        REJECTED    // 拒绝处理
    }
}